home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / pmake / lst / lstMember.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-05-19  |  1.1 KB  |  47 lines

  1. /*-
  2.  * lstMember.c --
  3.  *    See if a given datum is on a given list.
  4.  *
  5.  * Copyright (c) 1988 by the Regents of the University of California
  6.  * Copyright (c) 1988 by Adam de Boor
  7.  *
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software and its documentation for any purpose and without
  10.  * fee is hereby granted, provided that the above copyright
  11.  * notice appears in all copies.  The University of California nor
  12.  * Adam de Boor makes any representations about the suitability of this
  13.  * software for any purpose.  It is provided "as is" without
  14.  * express or implied warranty.
  15.  *
  16.  *
  17.  */
  18. #ifndef lint
  19. static char *rcsid =
  20. "$Id: lstMember.c,v 1.5 88/11/17 20:53:32 adam Exp $ SPRITE (Berkeley)";
  21. #endif lint
  22.  
  23. #include    "lstInt.h"
  24.  
  25. LstNode
  26. Lst_Member (l, d)
  27.     Lst                  l;
  28.     ClientData          d;
  29. {
  30.     List              list = (List) l;
  31.     register ListNode    lNode;
  32.  
  33.     lNode = list->firstPtr;
  34.     if (lNode == NilListNode) {
  35.     return NILLNODE;
  36.     }
  37.     
  38.     do {
  39.     if (lNode->datum == d) {
  40.         return (LstNode)lNode;
  41.     }
  42.     lNode = lNode->nextPtr;
  43.     } while (lNode != NilListNode && lNode != list->firstPtr);
  44.  
  45.     return NILLNODE;
  46. }
  47.